﻿#define _CRT_SECURE_NO_WARNINGS 1
//题目要求使用空间复杂度为O(n)的方式解决问题
//因此，我找到了以下计算单行的各个元素的公式
//C(n, k) = C(n, k - 1) * (n - k + 1) / k -》注：此公式是以第一个元素下标为0，0进行推导的，对其他下标表示首元素（如1，1）并不成立 ​
//其中，n为行，k为列，n初始值为0，k初始值也为0，即C(0, 0) = 1
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
    vector<int> getRow(int rowIndex) {
        //由于杨辉三角的第n行数据量为n，因此，第rowIndex的数据量为rowIndex（首行为1时）
        vector<int> v(rowIndex + 1);//这里首行为0，所以要+1
        v[0] = 1;
        for (size_t i = 1; i < rowIndex + 1; i++)
        {
            v[i] = v[i - 1] * (rowIndex - i + 1) / i;
        }
        return v;
    }
};